Шаг 120 - Перевод справочника в другую конфигурацию – типизированный атрибут.

Здесь немного сложнее. Тот шаг, который я написал про удаление справочника был, как раз основан на том, что при перегонке типизированного атрибута я получил вместо наименования – код. Смотрите, как это было. Вот примерный список номенклатуры.

120_1.gif (3401 b)

Так если его вывести в таблицу то вроде все нормально.

Процедура Сформировать()    
	Т = СоздатьОбъект("Таблица");   
	Спр =СоздатьОбъект("Справочник.Номенклатура");
	
    	Спр.ВыбратьЭлементы();  
	Пока Спр.ПолучитьЭлемент()>0 Цикл
	     Т.ВывестиСекцию("Секция_1");
 
	КонецЦикла;

    	Т.ТолькоПросмотр(1);
	Т.Показать(); 

КонецПроцедуры

Таблица.

120_2.gif (3645 b)

А вот как выглядит в таблице.

120_3.gif (2175 b)

Посмотрев таблицу, я совсем наивно, как ребенок, подумал что и в DBF будет выглядеть также. Именно эта мысль заставила меня написать шаг об программной очистки справочника. Итак, вот код.

Процедура Сформировать()    
	Т = СоздатьОбъект("Таблица");   
	Спр =СоздатьОбъект("Справочник.Номенклатура");
	  
	ДБФ =  СоздатьОбъект("XBase");
	ДБФ.ДобавитьПоле("NAME", "S", 50,0);
	ДБФ.ДобавитьПоле("POST", "S", 50,0);
	ДБФ.ДобавитьПоле("ED", "S", 50,0);	
    	ДБФ.ДобавитьПоле("c:\Test.dbf");

	
    	Спр.ВыбратьЭлементы();  
	Пока Спр.ПолучитьЭлемент()>0 Цикл
	     	Т.ВывестиСекцию("Секция_1");
         	ДБФ.Добавить();
		  
          	ДБФ.NAME=Спр.Наименование;
 	  	ДБФ.POST=Спр.Поставщик;
 	  	ДБФ.ED=Спр.ЕдиницыИзмерения;
 	  	  
	  	ДБФ.Записать();

	КонецЦикла;

    	Т.ТолькоПросмотр(1);
	Т.Показать(); 

КонецПроцедуры

А теперь что в DBF.

120_4.gif (2177 b)

Так вот код там. А мне нужно было наименование. Именно наименование. Так вот все дело в том, если атрибут типизирован то нужно вызывать его атрибут Наименование.

ДБФ.POST=Спр.Поставщик.Наименование;
ДБФ.ED=Спр.ЕдиницыИзмерения.Наименование;

Теперь все в порядке.

120_5.gif (3539 b)

На всякий случай, почему имя. Дело в том, что в справочнике существовало несколько помеченных на удаление элементов. Но удалить их было нельзя. Видно где то они фигурировали в проводках. При том с одинаковыми именами на взгляд. Искать мне было лень, вот я и решил просто сохранить как наименование. А так как справочник поставщиков уже был, я мог найти запись по имени и взаимосвязь осталась бы. Кстати с единицами измерения так же.

Hosted by uCoz